/**
 * 
 */
package puzzle.hashikake.view.swing;

import puzzle.common.loader.AbstractLoader;
import puzzle.common.loader.AbstractProblemDictionary;
import puzzle.common.solver.AbstractSolver;
import puzzle.common.view.swing.AbstractPuzzleViewPanel;
import puzzle.common.view.swing.PuzzleSolverAppMetadata;
import puzzle.hashikake.data.HashikakeBoard;
import puzzle.hashikake.loader.HashikakeLoader;
import puzzle.hashikake.problem.HashikakeProblemDictionary;
import puzzle.hashikake.solver.HashikakeSolver;

public class HashikakeSolverAppMetadata implements PuzzleSolverAppMetadata<HashikakeBoard> {
	public AbstractLoader<HashikakeBoard> createLoader() {
		return new HashikakeLoader();
	}

	public AbstractPuzzleViewPanel<HashikakeBoard> createPuzzleViewPanel() {
		return new HashikakeViewPanel();
	}

	public AbstractSolver<HashikakeBoard, ?, ?> createSolver() {
		return new HashikakeSolver();
	}

	public AbstractProblemDictionary createBuiltinProblemDictionary() {
		return new HashikakeProblemDictionary();
	}

	public String getTitle() {
		return "Hashi wo Kakero Solver 1.0";
	}
}
